跳到主要内容

使用分类器(单 ROI 示例)

本教程将带您在 OV80i 相机系统上创建第一个分类模型。您将学习如何设置一个单 Region of Interest (ROI) 分类器,以自动识别并对不同类型的对象进行分类——本示例中为钻头的不同尺寸。

您将构建的内容: 一个可以自动识别并按配置的通过/不通过逻辑对不同钻头尺寸进行分拣的工作分类模型。

预计时长: 45-60 分钟

难度等级: 初级

前提条件: 已设置并连接的 OV80i 相机系统

步骤 1:创建一个新的分类配方

1.1 进入创建配方

  1. 在 OV80i 界面中导航至“全部配方”页面
  2. 点击 + New Recipe 位于右上角

1.2 配置配方设置

模态框将显示:Add A New Recipe 模态框将出现:

  1. 输入配方名称: 使用描述性名称,如 "Drill_Bit_Classification_v1"
    • 命名提示: 为了便于识别,请包含对象类型和版本信息
  2. 选择配方类型: 从下拉菜单中选择 "Classification"
  3. 点击 OK 以创建配方

1.3 激活配方

  1. 在 全部配方 列表中定位新建的配方(它将显示为 "Inactive")
  2. 在配方条目的右侧点击 Activate
  3. 点击 Activate and go to editor 以确认并启动配方编辑器

检查点: 配方现已显示为 "Active",并显示了配方编辑器。

步骤 2:配置相机成像设置

2.1 打开成像配置

  1. 点击 Configure Imaging 位于配方编辑器的左下侧

2.2 调整聚焦设置

对准确分类至关重要的聚焦:

  1. 将钻头置于相机视野内
  2. 通过以下任一方式调整聚焦:
    • 滑块控件,或
    • 手动数值输入
  3. 测试不同聚焦位置,直到钻头边缘清晰锐利

聚焦提示:

  • 使用实时预览查看聚焦变化(实时)
  • 将聚焦放在最重要的特征上(钻头螺槽、尖端几何)
  • 确保对象的整个深度范围都在焦点中

2.3 优化曝光设置

适当曝光可确保一致的图像质量:

  1. 使用滑块或手动输入调整曝光
  2. 追求均衡照明,其中:
    • 物体细节清晰可见
    • 无高曝光区域(纯白)
    • 阴影不遮挡重要特征

2.4 配置 LED 照明

照明对分类准确性有显著影响:

  1. 根据对象选择 LED Light Pattern:
    • Bright Field(亮场):通用照明
    • Dark Field(暗场):突出边缘和表面缺陷
    • Side Lighting(侧光):揭示纹理和高度差异
  2. 对于钻头,尝试以下方案:
    • Bright Field 用于一般形状分类
    • Side Lighting 用于强调螺槽几何

2.5 调整伽玛设置

伽玛控制图像对比度:

  1. 调整伽玛值 以增强特征可见性
  2. 较低数值 会使暗区变亮
  3. 较高数值 增强对比度

2.6 保存成像设置

  1. 在实时预览中审查所有设置
  2. 点击 Save Imaging Settings 以应用配置

Checkpoint: 相机现在应能对钻头产生一致、光线充足的图像。

Step 3: Configure Template Image and Alignment

3.1 导航至 Alignment

  1. 单击 "Template Image and Alignment" 在面包屑菜单中,或
  2. 使用下拉菜单选择 "Template Image and Alignment"

3.2 跳过对齐器(本教程)

由于钻头将被一致放置:

  1. 选择 Skip Aligner
  2. 点击 Save 以应用更改

何时使用对齐器: 当零件到达时位置或方向不同,建议使用对齐器。对于本教程,我们假设零件放置保持一致。

Step 4: Set Up Inspection ROI

4.1 导航至 Inspection Setup

  1. 点击面包屑菜单中的 "Inspection Setup"

4.2 定义 Region of Interest

ROI 定义了分类将在哪些区域进行:

  1. 在相机视图中放置钻头
  2. 拖动 ROI 的角点以框定钻头
  3. 确保 ROI:
    • 完全包含钻头
    • 排除不必要的背景
    • 对您最大的钻头变体要足够大

4.3 ROI 最佳实践

应做不应做
包含所有重要特征将 ROI 设置得过大(包含噪声)
在对象周围保留较小边界截断对象部分
将期望对象置于中心在一个 ROI 中包含多个对象
在不同图像中保持 ROI 尺寸一致捕获之间改变 ROI

4.4 保存 ROI 配置

  1. 在不同尺寸的钻头下验证 ROI 位置
  2. 点击 Save 以应用 ROI 设置

Checkpoint: 无论钻头的具体尺寸如何,ROI 应始终将钻头框在内。

Step 5: Train Classification Model

5.1 导航至 Classification Block

  1. 点击 "Classification Block" 在面包屑菜单

5.2 创建 Classification Classes

您将为不同钻头尺寸创建分类:

示例类别:

  • Small Bits (1-3mm)
  • Medium Bits (4-6mm)
  • Large Bits (7-10mm)

5.3 捕获训练图像

对于每个类别,至少捕获 5 张不同的图像:

Class 1: Small Bits

  1. 将一枚小钻头放置在 ROI 内
  2. 点击 capture 以拍摄训练图像
  3. 将图像标注为 "Small"
  4. 对另外 4 枚小钻头重复同样操作(不同朝向/位置)

Class 2: Medium Bits

  1. 将中等钻头放置在 ROI 内
  2. 捕获并标注 为 "Medium"
  3. 再用不同的中等钻头各重复 4 次

Class 3: Large Bits

  1. 将大钻头放置在 ROI 内
  2. 捕获并标注 为 "Large"
  3. 再用不同的大钻头各重复 4 次

5.4 训练图像最佳实践

最佳实践重要原因
使用不同示例提高模型泛化能力
改变朝向/角度处理现实世界的定位变化
包含边界情况提高类别之间的边界检测
保持一致的照明降低照明相关错误
至少 5 张图像提供足够的训练数据

5.5 审核并验证标签

  1. 再次核对所有带标签的图像
  2. 确保正确的类别分配
  3. 删除任何标注错误的示例

5.6 开始模型训练

  1. 点击 Train Classification Model
  2. 选择训练模式:
    • Fast: 快速用于测试(2-5 分钟)
    • Accurate: 生产级训练(10-20 分钟)
  3. 选择迭代次数:
    • More iterations = Better accuracy
    • More iterations = Longer training time
  4. 点击 Start Training

5.7 监控训练进度

培训进度对话框显示:

  • 当前迭代次数
  • 训练准确度百分比
  • 预计完成时间

训练控制:

  • Abort Training: 如有需要,停止训练
  • Finish Training Early: 当准确度达到足够时停止

训练提示:

  • 当达到目标准确度时,训练将自动停止
  • 85% 及以上的准确度通常适用于生产用途
  • 如准确度较低,可以用更多图像重新训练

检查点: 你的模型应达到 >85% 的训练准确度。

Step 6: 测试分类器

6.1 访问 Live Preview

  1. 点击 Live Preview 训练完成后
  2. 在 ROI 中放置不同的钻头
  3. 观察分类结果:
    • 预测的类别名称
    • 置信度百分比
    • 分类时间

6.2 验证测试

系统地测试每个类别:

测试类型预期结果失败时的处理
Known Small Bit被分类为 "Small" >80% 的置信度添加更多训练图像
Known Medium Bit被分类为 "Medium" >80% 的置信度审查标签准确性
Known Large Bit被分类为 "Large" >80% 的置信度使用更多示例重新训练
Empty ROI无分类或低置信度调整置信度阈值

6.3 分类问题排查

问题可能原因解决方法
Low confidence训练数据不足添加更多训练图像
Wrong classifications图像质量差提高照明/对焦
Inconsistent resultsROI 包含背景噪声减小 ROI 尺寸
Classes confused外观相似的对象增加更多区分性示例

Step 7: 配置通过/失败逻辑

7.1 导航到 IO Block

在继续之前,确保所有 AI 块都已训练完毕(绿色状态)

  1. 在面包屑菜单中点击 IO Block,或
  2. 从 Recipe Editor 选择 "Configure I/O"

7.2 定位 Classification Logic Node

  1. 找到 "Classification Block Logic Node"(紫色节点)
  2. **若缺失:**从左侧的节点菜单拖拽

节点颜色: 紫色节点表示用于 AI 操作的 Overview Logic Blocks。

7.3 配置 Classification Logic

  1. 双击 Classification Logic Node
  2. 配置设置:

ROI 选择

  • 从下拉菜单中选择你的 ROI,来自 "Inspection Region" 下拉框

置信度阈值

  • 设置置信度阈值(通常为 70-85%)
  • Higher threshold = More strict classification
  • Lower threshold = More permissive classification

目标类别选择

  • 选择目标类别 以获得 "通过" 结果
  • 示例: 如果只有中等位应该通过,请选择 "Medium"

多 ROI 逻辑(高级)

  • 如有需要,添加更多 ROI
  • 选择逻辑: 必须通过 "Any" 或 "All" 规则

7.4 示例通过/失败配置

配置 1:尺寸特定通过

ROI: Drill_Bit_ROI
Target Class: Medium
Confidence: 80%
Logic: Pass only medium drill bits

配置 2:尺寸范围通过

ROI: Drill_Bit_ROI
Target Classes: Medium OR Large
Confidence: 75%
Logic: Pass medium or large bits

配置 3:排除小尺寸对象

ROI: Drill_Bit_ROI
Target Class: NOT Small
Confidence: 85%
Logic: Fail if classified as small

7.5 部署逻辑配置

  1. 点击 Done 在右上角
  2. 点击 Deploy 在 Node-RED 编辑器的右上角
  3. 验证部署 成功消息

第 8 步:最终测试与验证

8.1 端到端测试

测试完整的检查工作流:

  1. 在检测区域放置测试对象
  2. 触发检测(手动或自动)
  3. 验证结果:
    • 显示正确的分类
    • 正确的通过/失败指示
    • 一致的时序性能

8.2 生产验证清单

测试用例预期结果
目标类别对象通过结果
非目标类别对象失败结果
空 ROI失败结果
部分遮挡对象适当的置信度水平
照明条件差一致的性能

8.3 性能优化

如果结果不令人满意:

  1. 添加更多训练图像(尤其是边缘情况)
  2. 调整置信度阈值
  3. 改善照明一致性
  4. 改进 ROI 定位
  5. 使用 "Accurate" 模式重新训练

恭喜!

您已成功创建第一个分类模型!您的 OV80i 系统现在可以:

  • 自动识别 不同钻头尺寸
  • 应用通过/失败逻辑,基于分类结果
  • 为每个分类提供置信度分数
  • 通过 I/O 控制与生产工作流集成

下一步

现在您已经掌握单 ROI 分类,请考虑进一步探索:

高级分类技术

  • 多 ROI 分类,用于复杂部件
  • 分层分类,用于详细分类
  • 组合检测(分类 + 缺陷检测)

生产集成

  • PLC 通信,用于自动分拣
  • 数据记录,用于质量跟踪
  • 配方管理,用于多条产品线

模型优化

  • 迁移学习,用于相似产品
  • 主动学习,用于持续改进
  • 性能监控 和重新训练计划

🔗 参见

Troubleshooting Guide

常见问题与解决方案

问题症状解决方案
准确性不足分类结果经常出错增加更多样化的训练图像
处理时间较长处理时间较长减小 ROI 尺寸,优化照明
结果不一致同一对象会产生不同的结果改进部件定位,检查对焦
假阳性空 ROI 显示分类结果提高置信度阈值
训练失败模型无法成功完成训练检查图像质量,确保每个类别不少于 5 张图像

获取帮助

如果您在本教程未涵盖的问题上遇到问题:

  1. 检查文档中的故障排除指南
  2. 检查系统日志中的错误信息
  3. 联系 Overview 支持,提供以下资料:
    • 配方导出文件
    • 显示问题的示例图像
    • 系统配置信息

教程完成! 现在您拥有一个可投入生产的分类系统。请定期验证性能,并在需要时对模型进行重新训练,以保持长期的准确性。